﻿package mortal.game.view.nationalDayAct
{
    import extend.language.*;
    import mortal.game.cache.*;
    import mortal.game.manager.*;
    import mortal.game.resource.*;

    public class nationalDayActUtil extends Object
    {
        public static const needLevel:int = 50;
        public static const dateArr:Array = [{startDate:"2015-8-29-0-0-0", endDate:"2015-9-9-23-59-59"}, {startDate:"2015-8-29-0-0-0", endDate:"2015-9-7-23-59-59"}, {startDate:"2015-9-1-0-0-0", endDate:"2015-9-7-23-59-59"}, {startDate:"2015-9-7-0-0-0", endDate:"2015-9-9-23-59-59"}];

        public function nationalDayActUtil()
        {
            return;
        }// end function

        public static function getCategoryData(param1:int) : nationalDayActCategoryData
        {
            var _loc_3:String = null;
            var _loc_4:int = 0;
            var _loc_2:* = new nationalDayActCategoryData();
            switch(param1)
            {
                case nationalDayActConst.Act_Online:
                {
                    _loc_3 = ImagesConst.nationalDayActTag1;
                    _loc_4 = 39;
                    break;
                }
                case nationalDayActConst.Act_LineOff:
                {
                    _loc_3 = ImagesConst.nationalDayActTag2;
                    _loc_4 = 42;
                    break;
                }
                case nationalDayActConst.Act_Return:
                {
                    _loc_3 = ImagesConst.nationalDayActTag3;
                    _loc_4 = 39;
                    break;
                }
                default:
                {
                    break;
                }
            }
            _loc_2.index = param1;
            _loc_2.resName = _loc_3;
            _loc_2.textXPos = _loc_4;
            _loc_2.textYPos = 18;
            return _loc_2;
        }// end function

        public static function checkCanOpen() : Boolean
        {
            if (checkDate() && checkLevel())
            {
                return true;
            }
            return false;
        }// end function

        public static function checkLevel() : Boolean
        {
            var _loc_1:* = Cache.instance.role.entityInfo.level;
            if (_loc_1 >= needLevel)
            {
                return true;
            }
            return false;
        }// end function

        public static function checkDate() : Boolean
        {
            return ClockManager.instance.serverOpenDateNum > 7 && getLeftTime(0) > 0;
        }// end function

        public static function getActDateTimeLabel(param1:int) : String
        {
            var _loc_2:* = String(dateArr[param1]["startDate"]).split("-");
            var _loc_3:* = String(dateArr[param1]["endDate"]).split("-");
            var _loc_4:* = Language.getStringByParam(90461, String(_loc_2[0]), String((int(_loc_2[1]) + 1)), String(_loc_2[2]));
            var _loc_5:* = Language.getStringByParam(90461, String(_loc_3[0]), String((int(_loc_3[1]) + 1)), String(_loc_3[2]));
            return _loc_4 == _loc_5 ? (Language.getStringByParam(90462, _loc_4)) : (Language.getStringByParam(90463, _loc_4, _loc_5));
        }// end function

        public static function getLeftTime(param1:int = 0) : int
        {
            var _loc_2:Array = null;
            var _loc_3:Date = null;
            var _loc_5:Array = null;
            var _loc_6:Date = null;
            var _loc_4:* = ClockManager.instance.nowDate;
            var _loc_7:Number = 0;
            if (param1 == 0)
            {
                _loc_2 = String(dateArr[param1]["startDate"]).split("-");
                _loc_3 = new Date(_loc_2[0], _loc_2[1], _loc_2[2], _loc_2[3], _loc_2[4], _loc_2[5]);
                if (_loc_4.time < _loc_3.time)
                {
                    return -1;
                }
                _loc_5 = String(dateArr[param1]["endDate"]).split("-");
                _loc_6 = new Date(_loc_5[0], _loc_5[1], _loc_5[2], _loc_5[3], _loc_5[4], _loc_5[5]);
                _loc_7 = _loc_6.time - _loc_4.time;
            }
            if (param1 == nationalDayActConst.Act_Online)
            {
                _loc_2 = String(dateArr[param1]["startDate"]).split("-");
                _loc_3 = new Date(_loc_2[0], _loc_2[1], _loc_2[2], _loc_2[3], _loc_2[4], _loc_2[5]);
                if (_loc_4.time < _loc_3.time)
                {
                    return -1;
                }
                _loc_5 = String(dateArr[param1]["endDate"]).split("-");
                _loc_6 = new Date(_loc_5[0], _loc_5[1], _loc_5[2], _loc_5[3], _loc_5[4], _loc_5[5]);
                _loc_7 = _loc_6.time - _loc_4.time;
            }
            else if (param1 == nationalDayActConst.Act_LineOff)
            {
                _loc_2 = String(dateArr[param1]["startDate"]).split("-");
                _loc_3 = new Date(_loc_2[0], _loc_2[1], _loc_2[2], _loc_2[3], _loc_2[4], _loc_2[5]);
                if (_loc_4.time < _loc_3.time)
                {
                    return -1;
                }
                _loc_5 = String(dateArr[param1]["endDate"]).split("-");
                _loc_6 = new Date(_loc_5[0], _loc_5[1], _loc_5[2], _loc_5[3], _loc_5[4], _loc_5[5]);
                _loc_7 = _loc_6.time - _loc_4.time;
            }
            else if (param1 == nationalDayActConst.Act_Return)
            {
                _loc_2 = String(dateArr[param1]["startDate"]).split("-");
                _loc_3 = new Date(_loc_2[0], _loc_2[1], _loc_2[2], _loc_2[3], _loc_2[4], _loc_2[5]);
                if (_loc_4.time < _loc_3.time)
                {
                    return -1;
                }
                _loc_5 = String(dateArr[param1]["endDate"]).split("-");
                _loc_6 = new Date(_loc_5[0], _loc_5[1], _loc_5[2], _loc_5[3], _loc_5[4], _loc_5[5]);
                _loc_7 = _loc_6.time - _loc_4.time;
            }
            return _loc_7 > 0 ? (_loc_7) : (0);
        }// end function

    }
}
